xm block-create doesn't work. It seems like this command hasn't even
authorkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Sat, 13 Aug 2005 09:06:20 +0000 (09:06 +0000)
committerkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Sat, 13 Aug 2005 09:06:20 +0000 (09:06 +0000)
been tested (perhaps since the un-Twisting?).  This particular problem
was that one function was being called with self instead of the right
argument and another function's return value was being used when it
didn't actually return anything.

This patch also improves the error handling a bit by making sure we
don't thrown an exception on a log statement with a None value.  In
general, one should always use the % formatter instead of concatination
for strings in Python (even though this is not what this patch does).

Signed-off-by: Anthony Liguori
tools/python/xen/xend/XendDomainInfo.py
tools/python/xen/xend/server/controller.py

index 4e010413425f41549c9dc7da0b774335551f6ac9..029021f13e522c4d9d38b4f4578213d6a786efc6 100644 (file)
@@ -138,7 +138,7 @@ def dom_get(dom):
     if domlist and dom == domlist[0]['dom']:
         return domlist[0]
     return None
-    
+
 class XendDomainInfo:
     """Virtual machine object."""
 
@@ -754,7 +754,7 @@ class XendDomainInfo:
         @param dev_config: device configuration
         """
         dev_type = sxp.name(dev_config)
-        dev = self.createDevice(self, dev_config, change=True)
+        dev = self.createDevice(dev_type, dev_config, change=True)
         self.config.append(['device', dev.getConfig()])
         return dev.sxpr()
 
index f399503d7f939b96c9c4d628ebd9890534da489b..a1446c309316ed5eb26411355f1fad428c831338 100755 (executable)
@@ -142,7 +142,7 @@ class DevControllerTable:
     def createDevController(self, type, vm, recreate=False):
         cls = self.getDevControllerClass(type)
         if not cls:
-            raise XendError("unknown device type: " + type)
+            raise XendError("unknown device type: " + str(type))
         return cls.createDevController(vm, recreate=recreate)
 
 def getDevControllerTable():
@@ -283,6 +283,8 @@ class DevController:
         dev.attach(recreate=recreate, change=change)
         dev.exportToDB()
 
+        return dev
+
     def configureDevice(self, id, config, change=False):
         """Reconfigure an existing device.
         May be defined in subclass."""
@@ -325,7 +327,7 @@ class DevController:
     def getDevice(self, id, error=False):
         dev = self.devices.get(id)
         if error and not dev:
-            raise XendError("invalid device id: " + id)
+            raise XendError("invalid device id: " + str(id))
         return dev
 
     def getDeviceIds(self):